/**
 *		初始化弹出窗口选择相应项目的脚本
 *  
 *		AUTHOR:Ye	SINCE:20110109
 */
 var popChooserArr = {};//保存弹出窗口相关信息的数组
 var windowChooserIdMap = {};//key为window对象，value为点击则会弹出窗口的DOM元素的name或id
 var setOtherValue = true;/**如果本参数为真，则handleUserChoosed方法中，将为initPopChooser方法
							  的formElemNameArr参数指定的表单元素赋值**/
 
 /**
  * 初始化点击则会弹出窗口的DOM元素的点击事件
  */
 function initPopChooser(chooserNameOrId,//点击则会弹出窗口的DOM元素的name或id
 						popUrl,//突出窗口的url
 						choosedNameAnchorId,//显示已选择名称的锚id
 						choosedValueHiddenName,//保存已选择的值的隐藏字段的name
 						formElemNameArr//保存要设置值的表单元素的名字数组
 						){
 	
 	//把弹出窗口关联的参数保存起来
 	popChooserArr[chooserNameOrId] = 
 		{'a':choosedNameAnchorId,'h':choosedValueHiddenName};
 	
 	try{
 	
 	var chooser = g(chooserNameOrId);
 	chooser.onclick = function(){
 		var w = window.open(popUrl,'w',
 		'directories=no,location=no,menubar=no,resizeable=no,status=no,toolbar=no');
 		windowChooserIdMap[w]=chooserNameOrId;
 	}
 	
 	}catch(e){
 		alert(chooserNameOrId);
 	}
 }
 
 //把用户选择的项目的名称、ID、对应的跳转地址同步到打开本窗口的窗口中，并关闭本窗口
 function handleUserChoosed(winObj,//包含下面参数中DOM元素的window对象
 											chooserNameOrId,/**点击则会弹出窗口的DOM元素的name或id
 											或者弹出窗口的window对象*/
 											choosedId,//选择项的ID
 											choosedName,//选择项的名称
 											choosedUrl,//查询选择项的URL地址
 											formElemNameArr/**
 											保存要设置值的表单元素的关联数组，
 											key为表单元素的name或id，
 											value为表单元素的value值
 											**/
 											){
 	
	try{ 												
 												
	if(typeof(chooserNameOrId)!='string'){//如果传入的是window对象
		chooserNameOrId = winObj.windowChooserIdMap[chooserNameOrId];//找出真正的name或id
	}
 												
 	var obj = winObj.popChooserArr[chooserNameOrId];//保存本窗口对应锚与隐藏字段名称的对象
 	
 	var a = g(obj['a'],winObj);//锚
 	if(a.tagName == 'A'){
	 	a.innerHTML = choosedName;
	 	if(choosedUrl)
	 		a.href = choosedUrl;
 	}else if(a.tagName == 'INPUT'){
 		a.value = choosedName;
 	}
 	
 	var h = g(obj['h'],winObj);//隐藏字段
 	h.value = choosedId;
 	
 	if(formElemNameArr&&setOtherValue){
 		for(elemNameOrId in formElemNameArr){
 			var value = formElemNameArr[elemNameOrId];
 			var formElem = g(elemNameOrId,winObj);//表单元素
 			formElem.value = value;
 			
 			if(formElem.onblur){//如果有onblur事件则调用一吓
 				formElem.onblur.call(formElem);
 			}
 		}
 	}
 	
 	if(window.opener==winObj){//如果本为弹出窗口
 		if(winObj.chooserCallback)
 			winObj.chooserCallback();
 		window.close();
 	}
 	
	}catch(e){
		alert(e);
	}
 	
 }
 
 //初始化点击则会清除已选择的项目信息的DOM元素的点击事件
 function initCleaner(cleanerId,//点击则会清除已选择的项目信息的DOM元素的ID
 						anchorId,//显示项目名的锚ID
 						hiddenId//保存已选项目的隐藏字段ID
 						){
 	var cleaner = g(cleanerId);
 	var a = g(anchorId);
 	var h = g(hiddenId);
 	
 	//点击清空已选择项目
 	cleaner.onclick = function(){
	 	if(a.tagName == 'A'){
		 	a.innerHTML = '';
		 	a.href = '';
	 	}else if(a.tagName == 'INPUT'){
	 		a.value = '';
	 	}
 		h.value = '';
 		
 		if(window.cleanerCallback)
 			window.cleanerCallback();
 	}
 }
 